package cn.itsource.hrm.service.impl;

import cn.itsource.hrm.domain.CourseType;
import cn.itsource.hrm.mapper.CourseTypeMapper;
import cn.itsource.hrm.service.ICourseTypeService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 课程目录 服务实现类
 * </p>
 *
 * @author gangge
 * @since 2021-08-09
 */
@Service
public class CourseTypeServiceImpl extends ServiceImpl<CourseTypeMapper, CourseType> implements ICourseTypeService {

    @Override
    public List<CourseType> treeData() {
        // 1.  查询出所有的分类（name,list）
        final List<CourseType> all = baseMapper.selectList(null);
        // 2.  从所有的分类中提取出一级分类 --> 最外层的集合
        List<CourseType> firest = new ArrayList<>();
        all.forEach(type -> {
            // type, 所有的分类
            if (type.getPid().equals(0L)){
                // pid ，一级分类
                firest.add(type);
            }else {
                // 3.  剩下的所以分类，自己去查找自己的上级分类,
                all.forEach(father -> {
                 if (type.getPid().equals(father.getId())){
                     // 找到了 把自己添加到上级的list中去
                     father.getChildren().add(type);

                 }
             });
            }
        });

        // 4. 最终返回一级分类
        return firest;
    }
}
